This invention relates generally to command processing by a device and, more particularly, to proper processing of a command that requires an interval of time for input to an electronic device.
The traditional desktop computer-human interface, i.e. that which relies on keyboards and pointing devices, is of little or no use in many contemporary xe2x80x9ccomputingxe2x80x9d devices, such as handheld computers, pagers, and cellular phones. Alternative methods for command input, other than the desktop computer xe2x80x9cpoint and clickxe2x80x9d approach, are needed. This is particularly true for small, portable devices in which space constraints limit the potential use of buttons for finger input of commands.
Novel approaches to the computer-human command submission interface exist with the goal of improving the interface or providing alternatives with new utility. Some approaches utilize commands that require an interval of time for submission. Such approaches encounter problems in implementation because the command is not recognized and identified until the completion of the interval of time. In contrast, a device user typically expects the device to respond with respect to the state of the device at the beginning of submission of the command. Hence, command types that require an interval of time for submission or entry can cause delays in processing the command and therefore an unexpected response. By the time the command has been identified, the state of the device may have changed.
At first glance, a xe2x80x9cdouble-clickxe2x80x9d of a xe2x80x9cmousexe2x80x9d button appears to be a command that requires an interval of time for submission. A simple method, however, is used to avoid the problem of confusing a double-click with a single-click. In a typical desktop computer, all clicks are immediately processed at the time of occurrence. If a click was preceded by a first click, within a preset time interval, the second click is treated as a double click with its own associated command, e.g. an xe2x80x9cactivatexe2x80x9d command. For example, the first click selects an icon in the computer display and the second click activates the icon. If the second click occurs after the lapse of the preset time interval, the second click is treated as a single click and merely reselects the icon. Thus, the first click of a double click causes the same action as a single click, i.e. they both are xe2x80x9cselectxe2x80x9d commands. This makes implementation of these command inputs relatively simple.
Some, more complex, commands are not amenable to the above approach. In these situations, the state of the device can change during the interval of time of command submission. A method for command processing is desired to permit the use of commands that are a function of time in devices with a state that can vary during submission of a command.
A method is provided for processing an input command for a handheld computing device, comprising the steps of: measuring movement of the device over an interval of time with a motion sensor mounted to the device to generate a signal; analyzing the signal measured over the interval of time to determine a gesture command that corresponds to the movement of the device; and processing the gesture command to control the device as of an orientation of the device at the beginning of the interval. In addition to gesture commands, position commands can be input. Position commands are processed by measuring of a series of orientations of the device, analyzing the signal to determine a series of position commands that correspond to the series of orientations of the device, and processing the series of position commands to control the device. The method of processing of gesture commands avoids confusion due to inappropriate processing of orientations falsely determined to be position commands.
The above method for speculative execution of commands permits a response expected by the computer user given the time at which the user began submission of a command. The method further provides for avoidance of confusion between position commands and gesture commands. The method of speculative execution eliminates the need for a pause while awaiting completion of an input of a command.